<html>
<head><meta charset="utf-8"><title>history of typeck and borrowck · t-compiler/help · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/index.html">t-compiler/help</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html">history of typeck and borrowck</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="192763007"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192763007" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Tshepang Lekhonkhobe <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192763007">(Apr 03 2020 at 06:38)</a>:</h4>
<p>When ast-borrowck was implemented (in 2012), there was no hir. Once hir was added, did ast-borrowck move to make use of it? Where does typeck fit in... am I right in assuming typeck has to happen before borrowck, and if so, did it also move from using ast to using hir?</p>



<a name="192773588"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192773588" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192773588">(Apr 03 2020 at 08:49)</a>:</h4>
<p>typeck moved to hir. i don't know how it was before, but after the move typeck stores inferred types in a side table, as hir is immutable. typeck indeed has to happen before borrowck as typeck may add implicit dereferences and references. eg <code>a.foo()</code> where <code>foo</code> takes <code>&amp;self</code> results in <code>(&amp;a).foo()</code>. borrowck has to know about this.</p>



<a name="192777811"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192777811" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192777811">(Apr 03 2020 at 09:25)</a>:</h4>
<p>borrowck requires the inferred types, so yeah</p>



<a name="192777891"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192777891" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192777891">(Apr 03 2020 at 09:26)</a>:</h4>
<p>when the AST/HIR split was introduced, nothing moved, it's just that post-expansion AST became HIR, roughly</p>



<a name="192777956"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192777956" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192777956">(Apr 03 2020 at 09:26)</a>:</h4>
<p>so everything that worked after macros have been expanded and name resolution happened, were now using HIR</p>



<a name="192780613"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192780613" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Tshepang Lekhonkhobe <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192780613">(Apr 03 2020 at 09:51)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> if typeck used ast, then hir gets introduced, how does it automatically get to use hir (without changing)</p>



<a name="192780677"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192780677" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192780677">(Apr 03 2020 at 09:52)</a>:</h4>
<p><span class="user-mention" data-user-id="119529">@Tshepang Lekhonkhobe</span> it's just a plain rename at first</p>



<a name="192780763"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192780763" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192780763">(Apr 03 2020 at 09:52)</a>:</h4>
<p>like, some parts kept using the <code>ast</code> name, the others used <code>hir</code> instead of <code>ast</code></p>



<a name="192780926"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192780926" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192780926">(Apr 03 2020 at 09:54)</a>:</h4>
<p>but there wasn't anything deeper than a duplication/rename</p>



<a name="192780941"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192780941" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192780941">(Apr 03 2020 at 09:54)</a>:</h4>
<p>typeck didn't change how it worked or when it ran</p>



<a name="192780963"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192780963" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Tshepang Lekhonkhobe <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192780963">(Apr 03 2020 at 09:54)</a>:</h4>
<p>so, if ast-borrowck was named hir-borrowck, my confusion would not exist</p>



<a name="192781041"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192781041" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192781041">(Apr 03 2020 at 09:55)</a>:</h4>
<p>that's because HIR (the rustc IR) is an AST (the concept)</p>



<a name="192781054"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192781054" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192781054">(Apr 03 2020 at 09:55)</a>:</h4>
<p>like both <code>rustc_ast</code> and <code>rustc_hir</code> are ASTs</p>



<a name="192781071"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192781071" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Tshepang Lekhonkhobe <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192781071">(Apr 03 2020 at 09:55)</a>:</h4>
<p>ah, I see</p>



<a name="192781089"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192781089" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192781089">(Apr 03 2020 at 09:55)</a>:</h4>
<p>that's where the name <code>ast_borrowck</code> arises</p>



<a name="192781128"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192781128" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192781128">(Apr 03 2020 at 09:56)</a>:</h4>
<p>but yeah <code>hir_borrowck</code> would've been fine</p>



<a name="192781179"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192781179" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192781179">(Apr 03 2020 at 09:56)</a>:</h4>
<p>(the main reason for that name was to make it distinct from "MIR borrowck")</p>



<a name="192781273"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192781273" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Tshepang Lekhonkhobe <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192781273">(Apr 03 2020 at 09:57)</a>:</h4>
<p>so, in rust terms, mir is lot different to hir, than hir is different to ast</p>



<a name="192781287"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192781287" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192781287">(Apr 03 2020 at 09:57)</a>:</h4>
<p>yupp</p>



<a name="192781301"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192781301" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192781301">(Apr 03 2020 at 09:57)</a>:</h4>
<p>AST -&gt; HIR is mostly a desugaring step</p>



<a name="192781335"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192781335" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192781335">(Apr 03 2020 at 09:57)</a>:</h4>
<p>mir is a (control flow) graph, while ast and hir are (abstract syntax) trees</p>



<a name="192781337"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192781337" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192781337">(Apr 03 2020 at 09:57)</a>:</h4>
<p>HIR -&gt; MIR builds a control-flow graph, and requires type-checking results</p>



<a name="192782376"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192782376" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Tshepang Lekhonkhobe <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192782376">(Apr 03 2020 at 10:06)</a>:</h4>
<p>thanks very</p>



<a name="192793015"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192793015" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192793015">(Apr 03 2020 at 12:00)</a>:</h4>
<p>Also: HAIR is another AST</p>



<a name="192793047"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192793047" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192793047">(Apr 03 2020 at 12:01)</a>:</h4>
<p>which is even more desugared and explicit than HIR, but also typed rather than using side-tables (eww)</p>



<a name="192793954"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192793954" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192793954">(Apr 03 2020 at 12:11)</a>:</h4>
<p>one of the items in my colleagues' TODO list is "rename HAIR to THIR" :P</p>



<a name="192796060"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192796060" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Tshepang Lekhonkhobe <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192796060">(Apr 03 2020 at 12:32)</a>:</h4>
<p>what does T mean <span class="user-mention" data-user-id="119009">@eddyb</span></p>



<a name="192796149"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192796149" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192796149">(Apr 03 2020 at 12:33)</a>:</h4>
<p>typed</p>



<a name="192796176"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192796176" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192796176">(Apr 03 2020 at 12:33)</a>:</h4>
<p>the "A" in the current "HAIR" means "abstract", which is much less useful</p>



<a name="192796226"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192796226" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192796226">(Apr 03 2020 at 12:33)</a>:</h4>
<p>I thought the T meant <code>too</code> :)</p>



<a name="192796303"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192796303" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192796303">(Apr 03 2020 at 12:34)</a>:</h4>
<p>As in <code>Too High-level Intermediate Representation</code>.</p>



<a name="192796322"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192796322" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192796322">(Apr 03 2020 at 12:34)</a>:</h4>
<p><code>&gt;_&lt;</code></p>



<a name="192796350"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192796350" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Tshepang Lekhonkhobe <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192796350">(Apr 03 2020 at 12:35)</a>:</h4>
<p>is there a reason we have both hair and hir... do we need both, or can we get away with hir users be hair users</p>



<a name="192796503"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192796503" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192796503">(Apr 03 2020 at 12:36)</a>:</h4>
<p>I believe hir is lazily converted to hair: <code>hair::ExprRef</code> for example refers to <code>hir::Expr</code>. Also hair is always typed, which means that you can't run typeck on it.</p>



<a name="192796577"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192796577" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192796577">(Apr 03 2020 at 12:37)</a>:</h4>
<p>the difference is HAIR further desugars HIR based on typeck results</p>



<a name="192796588"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192796588" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192796588">(Apr 03 2020 at 12:37)</a>:</h4>
<p>it's only used to build MIR</p>



<a name="192796695"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192796695" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192796695">(Apr 03 2020 at 12:38)</a>:</h4>
<blockquote>
<p>it's only used to build MIR</p>
</blockquote>
<p>And for exhaustiveness checking!</p>



<a name="192796771"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192796771" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192796771">(Apr 03 2020 at 12:39)</a>:</h4>
<p>right, HAIR patterns are also used in match checking</p>



<a name="192796776"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192796776" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Tshepang Lekhonkhobe <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192796776">(Apr 03 2020 at 12:39)</a>:</h4>
<p>wow, this rustc is complex</p>



<a name="192866082"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192866082" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192866082">(Apr 03 2020 at 21:27)</a>:</h4>
<p>I've always liked the name HAIR. I feel that it is a big missed pun opportunity.</p>



<a name="192866176"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/history%20of%20typeck%20and%20borrowck/near/192866176" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/history.20of.20typeck.20and.20borrowck.html#192866176">(Apr 03 2020 at 21:28)</a>:</h4>
<p><span class="user-mention" data-user-id="198054">@mark-i-m</span>  consider this renaming as a final hair cut.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>